package com.jasiri.project.utils

import java.util.Locale

/**
 * 系统语言工具类
 * 提供获取当前系统语言和判断特定语言类型的功
 */
object LanguageUtils {
    // 常见语言类型常量
    const val ENGLISH = "en"         // 英语
    const val SWAHILI = "sw"         // 斯瓦希里语

    // 地区代码常量
    const val TANZANIA = "TZ"        // 坦桑尼亚
    
    /**
     * 获取当前系统语言代码
     * @return 语言代码 (如 "en", "sw" 等)
     */
    fun getSystemLanguage(): String {
        return Locale.getDefault().language
    }

    /**
     * 获取当前系统完整Locale
     * @return 语言和地区代码 (如 "en_TZ", "sw_TZ" 等)
     */
    fun getSystemLocale(): String {
        val locale = Locale.getDefault()
        return "${locale.language}_${locale.country}"
    }

    /**
     * 判断当前是否是英语
     */
    fun isEnglish(): Boolean {
        return ENGLISH.equals(getSystemLanguage(), ignoreCase = true)
    }

    /**
     * 判断当前是否是坦桑尼亚英语
     * 坦桑尼亚英语: 语言是英语(en)且地区是坦桑尼亚(TZ)
     */
    fun isTanzaniaEnglish(): Boolean {
        val locale = Locale.getDefault()
        return ENGLISH.equals(locale.language, ignoreCase = true) &&
                TANZANIA.equals(locale.country, ignoreCase = true)
    }

    /**
     * 判断当前是否是斯瓦希里语
     */
    fun isSwahili(): Boolean {
        return SWAHILI.equals(getSystemLanguage(), ignoreCase = true)
    }

    /**
     * 判断当前是否是坦桑尼亚斯瓦希里语
     * 坦桑尼亚斯瓦希里语: 语言是斯瓦希里语(sw)且地区是坦桑尼亚(TZ)
     */
    fun isTanzaniaSwahili(): Boolean {
        val locale = Locale.getDefault()
        return SWAHILI.equals(locale.language, ignoreCase = true) &&
                TANZANIA.equals(locale.country, ignoreCase = true)
    }

    /**
     * 获取语言显示名称
     * @param languageCode 语言代码
     * @return 语言的本地化名称
     */
    fun getLanguageDisplayName(languageCode: String): String {
        return Locale(languageCode).displayLanguage
    }
}